[web] SpacePolicy as pop-up#1090
Conversation
7d9ed18 to
2990e6f
Compare
dgdavid
left a comment
There was a problem hiding this comment.
So far, it looks good. I really like the simple, but clever, trick you did to avoid repeating same lines in the test examples. I wonder why I didn't think on it before 😜 I'm gonna think that I'm simply less lazy than you 😄
| summaryLabels: [ | ||
| // TRANSLATORS: This is presented next to the label "Find space", so the whole sentence | ||
| // would read as "Find space performing a custom set of actions". | ||
| N_("performing a custom set of actions") |
There was a problem hiding this comment.
NP: I have asked about the need of using N_ and _ here instead of directly _. See #726 (comment)
Asking because I've used directly _( in other places and, unless I'm wrong, it works.
There was a problem hiding this comment.
According to the @lslezak answer, you do not need 'N_ here, unless we decide to start wrapping Object.freeze to these objects.
| const openPopup = async (props = {}) => { | ||
| const allProps = { policy, devices, actions, ...props }; | ||
| const { user } = plainRender(<ProposalSpacePolicyField { ...allProps } />); | ||
| const button = screen.getByRole("button"); | ||
|
|
||
| await user.click(button); | ||
| const dialog = screen.getByRole("dialog", { name: "Find Space" }); | ||
| return { user, dialog }; | ||
| }; |
| }); | ||
|
|
||
| it("does not render the policy actions", async () => { | ||
| const { dialog } = await openPopup(); |
There was a problem hiding this comment.
That saves a lot of duplicated lines! 🎉
8d2e0ee to
0502c13
Compare
- The state about expanded devices can be directly stored in the component. - There are no unmounts when changing the policy or actions, so there is no need of remembering the state of an unmounted component.
- Use description from backend. - Simplify columns.
ce26918 to
ca49bc3
Compare
Just a note for people reading this. It has been moved not only for avoid having too much tables in the same page. We also found a kind of a pattern in that page which is, more or less, to move to a dialog things that are not applied immediately or things that are actually related with the real status of the current system, not the proposal that is going on. Of course, we can elaborate this a bit more. |
| onChange = noop | ||
| }) => { | ||
| // Generates the action value according to the policy. | ||
| const action = () => { |
There was a problem hiding this comment.
I'm not sure if this (together with the useEffect below) is the best (ie. most usable) behavior, but I find it reasonable enough to get this merged. We can re-evaluate in the future based on user's feedback.
| // ensures that. | ||
|
|
||
| // Stores whether the custom policy has been used. | ||
| useEffect(() => { |
There was a problem hiding this comment.
See https://github.com/openSUSE/agama/pull/1090/files#r1526086667. As said there, I'm not sure this will be the final behavior, but it's not a stopper to merge (is actually quite good).
ancorgs
left a comment
There was a problem hiding this comment.
I approve changes introduced by @joseivanlopez, but I cannot effectively approve the PR since I'm the original author.
As part of the Storage UI changes described at https://github.com/openSUSE/agama/blob/master/doc/storage_ui.md document, this PR aims to merge into master the changes already available in the `storage_ui` feature branch, which has been already tested and validated. Namely, * #1071 Added the following information to D-Bus: * The list of actions includes the SID of the affected device. * The partition table exports the unused slots. * The LVM devices (volume groups, physical volumes and logical volumes) are exported. * The block devices includes their start block and also indicates whether the device is encrypted. * The staging devices are exported. * #1079 Adapt the storage client to the changes in the D-Bus API and adapt `ProposalPage` component to read the information about the devices if needed. * #1082 Added new D-Bus interfaces `Device` , `Partition`, `LVM.LogicalVolume` and adapt `Filesystem` interface. It requires yast/yast-storage-ng#1373. * #1088 Replaced the `Planned Actions` section in the storage proposal for a `Result` one which presents how the storage would look after installation instead of just the list of actions. * #1090 Moved the space policy configuration to a popup. * #1098 Replace a `Resize` by `Before` label as it was suggested during the presentation of the UI in a review meeting.
Prepare for releasing Agama 8. It includes the following pull requests: * #884 * #886 * #914 * #918 * #956 * #957 * #958 * #959 * #960 * #961 * #962 * #963 * #964 * #965 * #966 * #969 * #970 * #976 * #977 * #978 * #979 * #980 * #981 * #983 * #984 * #985 * #986 * #988 * #991 * #992 * #995 * #996 * #997 * #999 * #1003 * #1004 * #1006 * #1007 * #1008 * #1009 * #1010 * #1011 * #1012 * #1014 * #1015 * #1016 * #1017 * #1020 * #1022 * #1023 * #1024 * #1025 * #1027 * #1028 * #1029 * #1030 * #1031 * #1032 * #1033 * #1034 * #1035 * #1036 * #1038 * #1039 * #1041 * #1042 * #1043 * #1045 * #1046 * #1047 * #1048 * #1052 * #1054 * #1056 * #1057 * #1060 * #1061 * #1062 * #1063 * #1064 * #1066 * #1067 * #1068 * #1069 * #1071 * #1072 * #1073 * #1074 * #1075 * #1079 * #1080 * #1081 * #1082 * #1085 * #1086 * #1087 * #1088 * #1089 * #1090 * #1091 * #1092 * #1093 * #1094 * #1095 * #1096 * #1097 * #1098 * #1099 * #1100 * #1102 * #1103 * #1104 * #1105 * #1106 * #1109 * #1110 * #1111 * #1112 * #1114 * #1116 * #1117 * #1118 * #1119 * #1120 * #1121 * #1122 * #1123 * #1125 * #1126 * #1127 * #1128 * #1129 * #1130 * #1131 * #1132 * #1133 * #1134 * #1135 * #1136 * #1138 * #1139 * #1140 * #1141 * #1142 * #1143 * #1144 * #1145 * #1146 * #1147 * #1148 * #1149 * #1151 * #1152 * #1153 * #1154 * #1155 * #1156 * #1157 * #1158 * #1160 * #1161 * #1162 * #1163 * #1164 * #1165 * #1166 * #1167 * #1168 * #1169 * #1170 * #1171 * #1172 * #1173 * #1174 * #1175 * #1177 * #1178 * #1180 * #1181 * #1182 * #1183 * #1184 * #1185 * #1187 * #1188 * #1189 * #1190 * #1191 * #1192 * #1193 * #1194 * #1195 * #1196 * #1198 * #1199 * #1200 * #1201 * #1203 * #1204 * #1205 * #1206 * #1207 * #1208 * #1209 * #1210 * #1211 * #1212 * #1213 * #1214 * #1215 * #1216 * #1217 * #1219 * #1220 * #1221 * #1222 * #1223 * #1224 * #1225 * #1226 * #1227 * #1229
Problem
A new table is going to be added to present the storage result, see #1088. Having both the table for configuring the space policy and the table for the result at the same page is too much.
Solution
Move the space policy configuration to a popup.
Screenshots
Toggle